/*********************************** (C) COPYRIGHT ******************************
 * address: https://gitee.com/liuniansihuo/multitasks-os
 *
 * Change Logs:
 * Date			Author      	Notes
 * 2019-06-29	LiuHuo			first version
 *
 * Modify Note:  注意：该work为系统tick中执行的，若某些任务对定时执行非常严格，则可以使用该work。
 * 若定时执行不严格，则使用普通work.默认不使用，若使用需在os_tick.c中打开。
*******************************************************************************/
#include "work_base.h"
/*

*/

WORK_QUEUE_BUFF(work_tick_buff,16);
static struct WorkQueue_s * pWork_tick = (struct WorkQueue_s *)(work_tick_buff);



/*
* function：默认添加工作队列队尾
* param:
	function：函数指针
	data: 函数的参数，可以是任何类型，强制转换即可
* return :
*/
void work_tick_add_tail(void (*function)(unsigned int data),unsigned int data)
{
	work_base_add_tail(pWork_tick,function,data);
}
/*
* function：删除指定的工作任务
* param:
	function：函数指针
	data: 函数的参数，可以是任何类型，强制转换即可
* return :
*/
void work_tick_del(void (*function)(unsigned int data), unsigned int data)
{
	work_base_del(pWork_tick,function,data);
}
/*
* function：工作任务执行，在主循环中执行
* param:
* return :
*/
void work_tick_process(void)
{
	for(int i=0; i<pWork_tick->cnt; i++)
	{
		if(pWork_tick->func[i].function)
			pWork_tick->func[i].function(pWork_tick->func[i].data);
	}
}

